Due to recent advances in technology, computer users are now able to enjoy many features that provide an improved user experience, such as playing various media and multimedia content on their personal or laptop computers. For example, most computers today are able to play compact discs (CDs) so users can listen to their favorite musical artists while working on their computers. Additionally, many computers are equipped with digital versatile disc (DVD) drives enabling users to watch movies.
As users become more familiar with advanced features on their computers, such as those mentioned above, their expectations of the various additional innovative features will undoubtedly continue to grow. Users often desire to receive media metadata, which includes content-related data associated with digital media files such as those from CDs and DVDs. For example, consider a media player software application that enables a user to play a CD on his or her computer. Typical applications allow the user to display track information associated with the CD by clicking on an appropriate user interface (UI). Such track information usually includes track numbers, song titles, playing times, and the like.
Given the large number and variety of media files already existing today, data publications of media metadata can be very large and experience a high volume of query traffic (e.g., several multi-gigabytes in size and under constant access). The size and activity level of any live data-driven service essentially precludes updating any significant portion of data by conventional means while the database is in use. As such, it is impossible to simply update the data while the database is “live” (i.e., being served to customers). Moreover, customers, particularly in a global environment, desire access to current, real-time metadata about media with 100%, around-the-clock availability. Under these circumstances, web services providing media metadata, for example, cannot afford any downtime for updating their data publications.
Conventional methods for updating databases are unable to provide timely, current data to users. One known method requires maintaining a snapshot of a web page and delivering data from the snapshot rather than going against the database. In this instance, currency of data is at issue because static content generated earlier is being served. Pre-caching, updating the database in small portions, and taking the database offline for a time to perform updates all suffer from poor performance, particularly when the database is large.
Thus, even using efficient modern database server applications, such as Microsoft® SQL Server™, updating a significant amount of data in a large, heavily utilized database can cause a greatly or completely degraded experience to the users of that database. For these reasons, the ability to publish large database updates to constantly accessed databases in a production environment is desired. Accomplishing timely data aggregation and large-scale publishing without causing service interruptions or incurring significant extra hardware or process costs is also desired.